1. Field of the Invention
The present invention relates to performing filtering using a processor, and more specifically, to a method and an apparatus for performing adaptive filtering using a vector processor with routable operands and independently selectable operations.
2. Description of the Related Art
The pursuit of higher performance has long been a defining feature of the computer and microprocessor industries. In many applications such as computer-aided design and graphics, higher performance is always needed to quickly translate users' commands into actions, thereby enhancing their productivity. Currently, the IBM PC computer architecture, based on Intel Corporation's X-86 family of processors, is an industry-standard architecture for personal computers. Because the IBM PC architecture is an industry standard, the architecture has attracted a broad array of software vendors who develop IBM PC compatible software. Furthermore, competition within the industry standard architecture has resulted in dramatic price performance improvements, thereby leading to a more rapid acceptance of computing technology by end users. Thus, the standardized nature of the IBM PC architecture has catapulted IBM PC compatible machines to a dominant market position.
The standardized nature of the IBM PC architecture is also a double-edged sword, for if the computer is not PC compatible, the sales potential for the computer becomes severely diminished. The reason for the limitation is that much of the existing software that runs on the PCs make explicit assumptions about the nature of the hardware. If the hardware provided by the computer manufacturer does not conform to those standards, these software programs will not be usable. Thus, PC system designers are constrained to evolutionary rather than revolutionary advances in the PC architecture in order to remain compatible with earlier IBM PC computers. However, it is desirable to take advantage of the semiconductor industry's ability to integrate large numbers of transistors per chip to satisfy the pent-up demand for more computing power in communication, multimedia and other consumer products.
The trend toward multimedia such as audio and image processing has increased the need for a processor capable of performing fast adaptive filtering. An adaptive filter is a filter containing coefficients that are updated by an adaptive algorithm to optimize the filter's response to a desired performance criterion. The most important feature of the adaptive filter is its ability to operate effectively in an unknown environment and to track time varying characteristics of the input signal. Adaptive filtering has been used extensively in the context of many applications, including: instantaneous frequency tracking, intrusion detection, acoustic Doppler extraction, on-line system identification, geophysical signal processing, biomedical signal processing, radar clutter elimination, beam forming, sonar processing, active sound cancellation, audio channel equalization, adaptive prediction, and adaptive control. Several types of filter structures can be implemented in the design of the adaptive filter. These structures include infinite impulse response (IIR) or finite impulse response (FIR). The adaptive IIR filter is generally simpler in structure than an adaptive FIR filter. However, adaptive IIR filters are potentially unstable if the filter poles move outside the unit circle during the adaptive process. Thus, generally, FIR adaptive filters are preferred due to their better stability.
The FIR filter is easily constrained to have one of two particularly useful properties: namely, linear-phase or linear-plus-90.degree.-phase response corresponding to even or odd symmetry, respectively, in its impulse response. The desired (ideal) frequency response for the FIR filter will be denoted by H'.sub.d (w) with corresponding impulse response h.sub.d (n). Since H'.sub.d (w) is simply the z transform of h.sub.d (n) evaluated on the unit circle, the equations become: ##EQU1## which has the form of an infinite Fourier series representation for H'.sub.d (w) with h.sub.d (n) as the Fourier coefficients. The series is, in fact, infinite if H'.sub.d (w) or any of its derivatives is discontinuous which is the case for most filters of interest.
On the other hand, the actual frequency response of the FIR filter is given by ##EQU2## and thus H'(w) corresponds to a finite Fourier series approximation for H'.sub.d (w).
Because of the computational complexity of implementing FIR filters in software, the application of adaptive filters has been limited to high end applications that can afford custom processors for performing the filtering operation, digital signal processors or dedicated logic. The strain placed on the processor is particularly intense when vector multiply-accumulate (MAC) operations are needed. However, due to cost reasons, it is not desirable to add a digital signal processor or a custom processor to the personal computer. Thus, a fast and efficient apparatus and method for performing adaptive filtering on a general purpose processor is desired for many applications. Furthermore, it is desirable to accelerate the speed of performing adaptive filtering without adversely affecting the compatibility of the personal computer with the installed software base.